import os

# 获取项目的根目录
# dirname   获取当前文件的路径地址
# __file__  获取当前运行的python的文件
BASE_PATH = os.path.dirname(__file__)
print(BASE_PATH)

import logging.handlers


# 封装一个初始化日志配置的方法    --  自定义一个方法
def init_log_config():
    # 1. 创建日志器对象
    logger = logging.getLogger()
    logger.setLevel("INFO")
    # 2. 创建处理器对象
    #    1. 创建控制台处理器（配置将日志打印到控制台）
    sh = logging.StreamHandler()
    #    2. 创建文件处理器（配置将日志打印到指定的文件夹中）
    # 保存日志的文件地址
    filename = BASE_PATH + "/log/ihrm.log"
    fh = logging.handlers.TimedRotatingFileHandler(filename, "midnight", 1, 7, encoding="utf-8")
    # 3. 创建格式化器对象
    # 日志打印格式
    fmt = "%(asctime)s %(levelname)s [%(name)s] [%(filename)s(%(funcName)s:%(lineno)d)] - %(message)s"
    formatter = logging.Formatter(fmt)

    # 4. 将格式化器对象添加到处理器对象中
    #    1. 设置控制台处理器
    sh.setFormatter(formatter)
    #    2. 设置文件处理器
    fh.setFormatter(formatter)

    # 5. 将处理器对象添加到日志器对象中
    #    1. 将控制台处理器添加日志器对象
    logger.addHandler(sh)
    #    2. 将文件处理器添加日志器对象
    logger.addHandler(fh)


if __name__ == '__main__':
    init_log_config()
    logging.debug("这是一个调试级别的消息")
    logging.info("这是一个消息级别的信息")
    logging.warning("这是一个警告级别的信息")
    logging.error("这是一个BUG")
    logging.critical("我已崩溃")
